package files;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.Collection;


import maquina.LocalProperties;

public class WorkersListFileManager extends GridMonitorFileManager {

	public static void removeWorkersFromList(String userLogin){
		try {
			RandomAccessFile raf = new RandomAccessFile(new File(LocalProperties.filenamePeerWorkersList), "rw");
			
			//Pega a quantidade de registros salvos no arquivo...
			int contador = 0;
			while(raf.readLine() != null){
				contador++;
			}
			
			//volta para o início do arquivo
			raf.seek(0);
			
			Collection<String> lista = new ArrayList<String>();
			
			//Procura entre os registros, se existe o login informado, e salva os registros que não interessam em outra lista...
			int i = 0;
			while(i < contador){
				String linha = raf.readLine();
				String atualUser = linha.split(LocalProperties.separador)[0];
				if(!atualUser.equals(userLogin)){
					lista.add(linha);
				}
				i++;
			}
			
			
			//Limpa a lista de workers do peer...
			clearInformation(LocalProperties.filenamePeerWorkersList);
			
			//Adiciona à lista os users já conhecidos...
			for (String user : lista) {
				String atualUser[] = user.split(LocalProperties.separador);
				saveInformation(LocalProperties.filenamePeerWorkersList, atualUser[0]+LocalProperties.separador+atualUser[1]);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}
